﻿using System;
using System.Collections.Generic;
using System.ServiceModel;

using SBPweb.PlAzureNet.Shared.Library.Constants;

using SBPweb.PlAzureNet.Server.Data.Actors;

namespace SBPweb.PlAzureNet.Server.Library.Operations
{

    [ServiceContract(Namespace = Namespaces.Services_Operations_Data)]
    public interface ILeagueDataServiceContract
    {

        [OperationContract]
        IEnumerable<League> FetchAllAdHocLeaguesByPersonId(long personId);

        [OperationContract]
        League FetchOneLeagueByExactLocation(Location location);

        [OperationContract]
        League FetchOneLeagueByExactLocationId(long locationId);

        [OperationContract]
        IEnumerable<League> FetchAllLeaguesNearByLocation(Location location);

        [OperationContract]
        IEnumerable<League> FetchAllLeaguesNearByLocationId(long locationId);

        [OperationContract]
        League FetchOneLeagueById(long leagueId);

        [OperationContract]
        League FetchOneLeagueByName(string leagueName, string cultureCode);

    }

}